package com.avsa.contratodeagricultores.action;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import com.avsa.contratodeagricultores.model.Adenda;
import com.avsa.contratodeagricultores.model.Contrato;
import com.avsa.contratodeagricultores.service.ContratoService;

public class RegistrarAdendaContratoAction {

	private Contrato contrato= new Contrato();
	private Adenda adenda=new Adenda();
	private ContratoService contratoService=new ContratoService();
	private String fecha;
	private String mensaje;
	private int busqueda;
	private int numAdenda;
	
	
	
	public int getNumAdenda() {
		return numAdenda;
	}
	public void setNumAdenda(int numAdenda) {
		this.numAdenda = numAdenda;
	}
	public int getBusqueda() {
		return busqueda;
	}
	public void setBusqueda(int busqueda) {
		this.busqueda = busqueda;
	}
	public Adenda getAdenda() {
		return adenda;
	}
	public void setAdenda(Adenda adenda) {
		this.adenda = adenda;
	}
	public String getMensaje() {
		return mensaje;
	}
	public void setMensaje(String mensaje) {
		this.mensaje = mensaje;
	}
	public Contrato getContrato() {
		return contrato;
	}
	public void setContrato(Contrato contrato) {
		this.contrato = contrato;
	}
	public ContratoService getContratoService() {
		return contratoService;
	}
	public void setContratoService(ContratoService contratoService) {
		this.contratoService = contratoService;
	}
	public String getFecha() {
		return fecha;
	}
	public void setFecha(String fecha) {
		this.fecha = fecha;
	}
	
	
	
	public String inicializar(){
		obtenerFecha();
		numAdenda=contratoService.generarNumAdenda();
		System.out.print(""+numAdenda);
		return "busqueda";
	}
	
	public Date obtenerFecha(){
		Date fechaActual=new Date();
		SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd");
		String cadenaFecha = formato.format(fechaActual);
		Date fecha1=null;
		try{
			fecha1=new SimpleDateFormat("YYYY-MM-DD").parse(cadenaFecha);
			
		}catch(ParseException e){
			e.printStackTrace();
		}
		fecha=cadenaFecha;
		return fecha1;
	}
	public String buscarContrato()throws Exception{
		obtenerFecha();
		numAdenda=contratoService.generarNumAdenda();
		if(contratoService.buscarContratoXId(contrato)!=null){
			contrato=contratoService.buscarContratoXId(contrato);
			busqueda=contrato.getId_contrato();
			System.out.print("Id Contrato"+busqueda);
		}
		else{
			mensaje="No se han encontrado los datos del contrato";
		}
		return "busqueda";
	}
	
	public String registrarAdenda() throws Exception{
		
		adenda.setFechaRegistro(obtenerFecha());
		numAdenda=contratoService.generarNumAdenda();
		
		adenda.setFormaPago(contrato.getFormaPago());
		adenda.setMontoPago(contrato.getMontoPago());
		System.out.print("Id Contrato"+busqueda);
		contrato.setId_contrato(busqueda);
		contrato=contratoService.buscarContratoXId(contrato);
		adenda.setContrato(contrato);
		
		contratoService.registrarAdenda(adenda);
		mensaje="Adenda Registrada Correctamente";
		return "registro";
	}
	
}
